package com.yan.design.two.behavior.s9.s2;

import com.yan.design.two.behavior.s9.s2.s.AeeState;
import com.yan.design.two.behavior.s9.s2.s.BeeDState;
import com.yan.design.two.behavior.s9.s2.s.CeeDState;

/**
 * 9. 状态模式
 *      测试
 * @author shengren.yan
 * @create 2022-08-14
 */
public class runtest {
    public static void main(String[] args) {
        Contest contest = new Contest();
        // 设置 A 状态
        contest.setState(new AeeState());
        contest.getState();
//        contest.check(contest);

        // 设置 B 状态  - 可以执行 B的 check 审核方法
        contest.setState(new BeeDState());
        contest.getState();
        contest.check(contest);

        // 通过 B的审核  当前状态是 C ,可以执行 CC 的 make 方法  或者 pay方法
        contest.make(contest);

//        contest.pay(contest);

    }
}
